package stream;

import java.io.*;
import java.util.Scanner;

/**
 * @author 兴趣使然黄小黄
 * @version 1.0
 * 文件复制 Demo 案例
 */
public class Demo5 {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.println("请输入要复制的文件: ");
        String src = in.nextLine();
        System.out.println("请输入要复制到哪里: ");
        String toCopy = in.nextLine();
        // 检验待复制的文件是否是一个文件
        File srcFile = new File(src);
        if (!srcFile.isFile()){
            System.out.println("输入有误!");
            return;
        }
        // 进行文件复制操作
        copyFile(src, toCopy);
        in.close();
    }

    /**
     * 复制文件的方法
     * @param src
     * @param toCopy
     */
    private static void copyFile(String src, String toCopy) {
        // 读取文件
        try(InputStream inputStream = new FileInputStream(src)) {
            try(OutputStream outputStream = new FileOutputStream(toCopy)) {
                // 将文件读取到数组中
                byte[] buffer = new byte[1024];
                while (true){
                    int len = inputStream.read(buffer);
                    if (len == -1){
                        break;
                    }
                    outputStream.write(buffer, 0, len);
                }
                System.out.println("文件复制完成!");
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
